<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// 常见的生成Undefined的环境：
	// * 变量被声明了，但没有赋值时，就等于undefined
	// {
	// 	var a;
	// 	let b;
	// 	console.log(a,b);// undefined undefined
	// }
	// * 调用函数时，应该提供的参数没有提供，该参数等于undefined
	// {
	// 	function fn(a,b){
	// 		console.log(a,b);// 1 undefined
	// 	}
	// 	fn(1);
	// }
	
	// * 对象没有赋值的属性，该属性的值为undefined
	// {
	// 	const obj = {
	//
	// 	}
	// 	console.log(obj.userName);// undefined
	// }
	
	// * 函数没有返回值时或return右侧没有内容时，默认返回undefined
	{
		// function fn(){
		//
		// }
		//
		// console.log(fn());// undefined
		//
		// function fn2(){
		// 	return;
		// }
		//
		// console.log(fn2());// undefined
	}
	
	
	// Undefined常被用于条件判断
	// * 判断函数是否传递参数
	// {
	// 	function fn(a){
	// 		// a不是undefined
	// 		if(a){
	// 			console.log(a);// undefined
	// 		}
	// 	}
	// 	fn();
	// }
	// * 判断对象是否拥有指定的属性
	{
		const obj = {
			userName:"lisi"
		}
		if(obj.userName){
			console.log("拥有userName属性")
		}
		if(!obj.age){
			console.log("不拥有age属性")
		}
	}
</script>
</html>